package xyz.heyaoshare.core.service.system;

import com.mybatisflex.core.service.IService;
import xyz.heyaoshare.common.entity.bo.ResultPage;
import xyz.heyaoshare.core.controller.system.dict.vo.req.*;
import xyz.heyaoshare.core.controller.system.dict.vo.resp.DictTypeDetailRespVO;
import xyz.heyaoshare.core.controller.system.dict.vo.resp.DictTypeListRespVO;
import xyz.heyaoshare.core.controller.system.dict.vo.resp.DictTypePageRespVO;
import xyz.heyaoshare.core.entity.system.DictType;

import java.util.List;

/**
 * 字典类型 Service
 * @author YueHe
 * @version 0.0.1
 * @since 2025/6/25 下午2:03
 */
public interface DictTypeService extends IService<DictType> {

    /**
     * 新增字典类型
     *
     * @param reqVO 新增对象
     * @return 新增状态
     */
    Boolean insert(DictTypeInsertReqVO reqVO);

    /**
     * 字典类型分页
     *
     * @param reqVO 分页请求
     * @return 分页数据
     */
    ResultPage<DictTypePageRespVO> selectPage(DictTypePageReqVO reqVO);

    /**
     * 字典类型列表
     *
     * @param reqVO 请求参数
     * @return 字典类型列表
     */
    List<DictTypeListRespVO> selectList(DictTypeListReqVO reqVO);

    /**
     * 字典类型详情
     *
     * @param reqVO 请求参数
     * @return 详情数据
     */
    DictTypeDetailRespVO selectDetail(DictTypeDetailReqVO reqVO);

    /**
     * 删除字典类型
     *
     * @param reqVO 请求数据
     * @return 删除状态
     */
    Boolean delete(DictTypeDeleteReqVO reqVO);

    /**
     * 更新字典类型
     *
     * @param reqVO 更新数据
     * @return 更新状态
     */
    Boolean updateData(DictTypeUpdateReqVO reqVO);

}